package com.xtm.exercise.base.A08Collection.A09Collections;

import org.apache.commons.collections.CollectionUtils;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/*
    - java.utils.Collections是集合工具类，用来对集合进行操作。部分方法如下：
        - public static <T> boolean addAll(Collection<T> c, T... elements):往集合中添加一些元素。
        - public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序。
        - public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
        - public static <T> void sort(List<T> list，Comparator<? super T> ):将集合中元素按照指定规则排序
 */
public class Demo01Collections {

    @Test
    public void test01(){
        //创建一个list集合，存储姓名
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");

        boolean b = Collections.addAll(list, "1");//方法用于所有指定元素添加到指定的集合。
        System.out.println(list);

        Collections.shuffle(list); //打乱顺序:打乱集合顺序
        System.out.println(list);

        Collections.reverse(list);//反转
        Collections.sort(list);//排序  默认是升序
        //emptyXXX(),返回一个空的只读集合
        /**
         * 返回空集合
         * 返回了一个空的List
         * 这个方法返回的List是Collections类的一个静态内部类，它继承AbstractList后并没有实现add()、remove()等方法，因此这个返回值List并不能增加删除元素。
         */
        List<Object> emptyList = Collections.emptyList();

        //判断集合是否为空
        boolean empty = CollectionUtils.isEmpty(list);
        //判断集合是否非空
        boolean notEmpty = CollectionUtils.isNotEmpty(list);

    }
}
